package main

import "fmt"

//我们将通过两个函数：`zeroval` 和 `zeroptr` 来比较指针和值类型的不同。
//`zeroval` 有一个 `int` 型参数，所以使用值传递。
//`zeroval` 将从调用它的那个函数中得到一个 `ival` 形参的拷贝。
func zeroval(ival int) {
	ival = 0
}
func zeroptr(iptr *int) {
	*iptr = 0
}
func main() {
	i := 1
	fmt.Println("initial:", i)
	zeroval(i)
	fmt.Println("zeroval: ", i)

	//通过 `&i` 语法来取得 `i` 的内存地址，即指向 `i` 的指针。
	zeroptr(&i)
	fmt.Println("zeroptr:", i)

	fmt.Println("pointer:", &i)
}
